#pragma once
#ifndef Game_Common_IEntityLogic_h
#define Game_Common_IEntityLogic_h

namespace Game {
namespace Common {

class Entity;
class EntityLogicManager;
class RTTI;

using namespace std;

class IEntityLogic {
public:
    virtual ~IEntityLogic() = 0 {};
    virtual const RTTI& GetEntityRTTI() const = 0;
    virtual EntityLogicManager* GetEntityLogicManager() const = 0;
    virtual void SetEntityLogicManager(EntityLogicManager* val) = 0;
    virtual void Update(Entity* entity, const float& elapsedTime) = 0;
};

}
}

#endif